package com.whfc.wxmp.api.sys.service;

import com.whfc.common.result.PageData;
import com.whfc.emp.entity.AppEntryApplication;
import com.whfc.emp.entity.ConfirmationRecord;
import com.whfc.entity.dto.Apply.rep.WorkPlan;
import com.whfc.entity.dto.Apply.rep.RegionRep;
import com.whfc.entity.dto.Apply.req.*;
import com.whfc.env.dto.GasDetectionQueryReq;
import com.whfc.env.dto.GasDetectionResultDTO;
import com.whfc.fuum.entity.SysUser;
import com.whfc.fuum.entity.WxUser;
import com.whfc.mach.entity.AppMach;
import com.whfc.wxmp.api.sys.dto.ConfirmRequestDTO;
import com.whfc.wxmp.dto.WorkPlanDTO;

import java.util.List;
import java.util.Map;

public interface WxWorkPlanService {
    String saveWorkPlan(WxUser user, WorkPlanCreatePlanReq req);

    List<AppEntryApplication> queryEntryerId(WxUser user);

    List<SafetyTrainingExamReq> queryConstructionWorkers(Integer id);

    List<RegionRep> queryWorkArea(Integer deptId);

    List<AppMach> queryMach(EquipmentIdReq req);

    List<WorkPlanDTO> entryReview(WxUser user, AppEntryApplicationReq request);

    String confirmExit(Integer personOrDevice, Integer isExit,Integer planId);

    Map<String,Object> confirm(WxUser user, ConfirmRequestDTO requestDTO);

    PageData<ConfirmationRecord> confirmList(WxUser user, ConfirmRequestDTO requestDTO);

    String review(WxUser user, Integer status, Integer id);

    /**
     * 获取工作计划到场确认前气体检测数据
     *
     * @param planId 工作计划ID
     * @return 气体检测数据结果
     */
    GasDetectionResultDTO getGasDetectionData(GasDetectionQueryReq planId);

}